import axios from "axios";
import { getToken, removeUserInfo } from ".";
import { createBrowserHistory } from "history";
import { message } from "antd";
const history = createBrowserHistory();

// 创建 实例
const request = axios.create({
  baseURL: import.meta.env.VITE_BASE_URL,
  timeout: 8000,
});
// 添加拦截器
request.interceptors.request.use(
  function (config) {
    if (getToken()) {
      config.headers.token = getToken();
    }
    return config;
  },
  function (error) {
    return Promise.reject(error);
  }
);

request.interceptors.response.use(
  function (res) {
    switch (res.data.code) {
      case 401:
        // 过期 清除用户缓存 ，弹出错误提示 去登录页
        removeUserInfo();
        message.error('用户的登录状态过期', 2, () => {
          history.replace('/login')
          history.go(0)
        })
        break;
      case 403:
         // 未登录，弹出错误提示 去登录页
         message.error('用户未登录,请登录访问', 2, () => {
          history.replace('/login')
          history.go(0)
        })
        break;
      default:
        break;
    }
    return res;
  },
  function (error) {
    return Promise.reject(error);
  }
);

export default request;
